<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>滑动窗口</title>
    <!-- <script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script> -->
    <script src="lodash.min.js"></script>
    <script src="../helpers/bing.js"></script>
  </head>
  <body>
    <script>
      /**
       * 滑动窗口遍历方法
       * @param {Object[]} arr - 输入的数组对象
       * @param {number} windowSize - 滑动窗口的大小
       */
      function slidingWindowTraversal(arr, windowSize) {
        const result = [];

        // 滑动窗口遍历数组
        for (let i = 0; i <= arr.length - windowSize; i++) {
          console.log(i)
          // 截取长度为 windowSize 的子数组
          const window = arr.slice(i, i + windowSize);
          result.push(window);
          console.log(window); // 可以查看每个窗口的内容
        }

        return result; // 返回所有窗口的数组  
      }

      // 示例数组，长度为 100
      const arr = new Array(20)
        .fill(0)
        .map((_, index) => ({ id: index, value: Math.random() }));

      // 调用方法，窗口大小为 2
      slidingWindowTraversal(arr, 3);
    </script>
  </body>
</html>
